Zoom in or zoom out with slow-motion video capture

ABSTRACT

Aspect for a device for generating video content are described. The device includes a first camera and one or more processors coupled to the first camera and configured to receive a first set of frames captured by the first camera at a first rate, process the first set of frames to generate video content for display, receive a selection to zoom in or zoom out, during the zoom in or zoom out to a zoom threshold for the first camera, receive a second set of frames captured by the first camera at a second rate that is less than the first rate, process the second set of frames to generate video content for display, and generate video content for playback, at a third rate that is less than the first rate, that includes the first set of frames and the second set of frames.

TECHNICAL FIELD

This disclosure relates to image processing.

BACKGROUND

A camera device includes one or more cameras that capture frames (e.g.,images). Examples of the camera device include stand-alone digitalcameras or digital video camcorders, camera-equipped wirelesscommunication device handsets, such as mobile telephones having one ormore cameras, cellular or satellite radio telephones, camera-equippedpersonal digital assistants (PDAs), panels or tablets, gaming devices,computer devices that include cameras, such as so-called “web-cams,” orany device with digital imaging or video capabilities.

The camera device processes the captured frames and outputs the framesfor display. In some examples, the camera device captures frames at afirst rate and displays the frames at a second rate that is less thanthe first rate. The result of displaying the frames at the second ratethat is less than the first rate at which the frames are captured isthat the image content appears to move in slow motion.

SUMMARY

In general, this disclosure describes techniques for slow motion videocapture with zoom in or zoom out capabilities in multi-camera devices.Each of the cameras on a camera device may be associated with zoomfactor ranges between respective zoom thresholds. For example, a zoomfactor for a first camera may be between 0.5× to 1× magnification ofcaptured image content. In this example, the zoom factor range is from0.5× magnification to 1× magnification, a first zoom threshold is 0.5×,and a second zoom threshold is 1×. Other cameras of the device may haveother zoom factor ranges (e.g., from 1× to 2× magnification, and thelike). Also, each of the cameras may be configured to capture frames inaccordance with respective camera parameters. For zooming in (e.g.,increasing magnification) or zooming out (e.g., decreasingmagnification), a camera processor processes frames captured by a firstcamera based on the camera parameters for the first camera until a zoomthreshold for the first camera is reached, at which point, the cameraprocessor processes frames captured by a second camera (e.g., the cameraprocessor switches from a wide angle camera to a telephoto camera).

In one or more examples, during the zooming in or out (e.g., during thetime when frames captured by the first camera are zoomed into or out offrom a current zoom factor to a zoom threshold), the first camera may beconfigured to capture frames at a lower frame rate than the rate atwhich the first camera may capture frames when not zooming in or out. Asdescribed in more detail, by reducing the capture rate during thezooming in or out, the example techniques may reduce the number ofpoor-quality frames that are captured by the first camera and displayedbefore frames captured by a second camera are displayed.

For instance, in slow motion, the captured frames are displayed at alower rate than a rate at which the frames are captured. Also, duringthe zooming in or out, the camera parameters may not be optimized,resulting in poorer image quality of the frames that are captured duringthe time of zooming in or zooming out from a current zoom factor to azoom threshold. In slow motion, if there are many frames with poor imagequality, the viewer experience is negatively impacted. By reducing thenumber of poor-quality frames that are captured and then displayed, theexample techniques may improve the overall operation of the cameradevice such that the resulting device can provide zooming in or outcapabilities even when slow-motion video capture is enabled.

In one example, the disclosure describes a device for generating videocontent, the device comprising a first camera and one or more processorscoupled to the first camera and configured to receive a first set offrames captured by the first camera at a first rate, process the firstset of frames to generate video content for display, receive a selectionto zoom in or zoom out, during the zoom in or zoom out to a zoomthreshold for the first camera, receive a second set of frames capturedby the first camera at a second rate that is less than the first rate,process the second set of frames to generate video content for display,and generate video content for playback, at a third rate that is lessthan the first rate, that includes the first set of frames and thesecond set of frames.

In one example, the disclosure describes a method for generating videocontent, the method comprising receiving, with one or more processors, afirst set of frames captured by a first camera at a first rate,processing, with the one or more processors, the first set of frames togenerate video content for display, receiving, with the one or moreprocessors, a selection to zoom in or zoom out, during the zoom in orzoom out to a zoom threshold for the first camera, receiving, with theone or more processors, a second set of frames captured by the firstcamera at a second rate that is less than the first rate, processing,with the one or more processors, the second set of frames to generatevideo content for display, and generating, with the one or moreprocessors, video content for playback, at a third rate that is lessthan the first rate, that includes the first set of frames and thesecond set of frames.

In one example, the disclosure describes a computer-readable storagemedium storing instructions thereon that when executed cause one or moreprocessors to receive a first set of frames captured by a first cameraat a first rate, process the first set of frames to generate videocontent for display, receive a selection to zoom in or zoom out, duringthe zoom in or zoom out to a zoom threshold for the first camera,receive a second set of frames captured by the first camera at a secondrate that is less than the first rate, process the second set of framesto generate video content for display, and generate video content forplayback, at a third rate that is less than the first rate, thatincludes the first set of frames and the second set of frames.

In one example, the disclosure describes a device for generating videocontent, the device comprising means for receiving a first set of framescaptured by a first camera at a first rate, means for processing thefirst set of frames to generate video content for display, means forreceiving a selection to zoom in or zoom out, means for receiving asecond set of frames captured by the first camera at a second rate thatis less than the first rate during the zoom in or zoom out to a zoomthreshold for the first camera, means for processing the second set offrames to generate video content for display, and means for generatingvideo content for playback, at a third rate that is less than the firstrate, that includes the first set of frames and the second set offrames.

The details of one or more examples are set forth in the accompanyingdrawings and the description below. Other features, objects, andadvantages will be apparent from the description, drawings, and claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram of a device configured to perform one or moreof the example techniques described in this disclosure.

FIG. 2 is a block diagram illustrating a camera processor of the deviceof FIG. 1 in further detail.

FIG. 3 is a conceptual diagram illustrating an example way to enablezoom in or zoom out.

FIG. 4 is a timing diagram illustrating an example of zooming in orzooming out.

FIG. 5 is a flowchart illustrating an example method of operation inaccordance with one or more examples described in this disclosure.

DETAILED DESCRIPTION

The example techniques described in this disclosure relate to slowmotion video capture with zoom in or zoom out capabilities inmulti-camera devices. A camera device may include multiple cameras tosupport zooming in or zooming out of video content. For example, acamera device may include an ultra-wide camera (e.g., configured tocapture more than 120° of viewing angle, such as 120° to 180°), a widecamera (e.g., configured to capture greater than 60° of viewing angle,such as 60° to) 120°, and a telephoto camera (e.g., configured tocapture less than 60° of viewing angle, such as 10° to 60°). Each of themultiple cameras may be associated with respective zoom factor rangesand zoom thresholds. For example, the ultra-wide camera may provide azoom factor range of 0.5× to 1×, where 0.5× and 1× are zoom thresholds.The wide camera may provide a zoom factor range of 1× to 2×, where 1×and 2× are zoom thresholds. The telephoto camera may provide a zoomfactor of greater than 2×, where 2× is a zoom threshold. The zoomfactors of 0.5×, 1×, and 2× may refer to the reproduction ratio of anobject on a sensor of the respective cameras (e.g., for a 0.5× zoomfactor for the ultra-wide camera, a half-inch object would reproduce as0.25 of the size of the object on the sensor of the ultra-wide camera).

Each camera may be associated with respective zoom factors based on theoptical zoom and/or digital zoom capabilities. That is, each camera mayprovide the zooming in or out over the zoom factor range based on one orcombination of optical zoom and digital zoom. Examples of optical zoomand digital zoom are described below.

In the above example, there is no overlap in the zoom factor ranges foreach of the cameras. However, in some examples, there may be overlap inthe zoom factor ranges. For example, the zoom factor range for theultra-wide camera may be 0.5× to 1.3×, the zoom factor range for thewide camera may be 1× to 2.3×, and the zoom factor range for thetelephoto camera may be greater than 2×. In this example, the zoomthreshold for the ultra-wide camera is 0.5× and 1.3×, the zoom thresholdfor the wide camera is 1× and 2.3×, and the zoom threshold for thetelephoto camera is 2×.

The zoom factor ranges and zoom thresholds are provided merely asexamples and should not be considered limiting. The example techniquesdescribed in this disclosure are not limited to any particular zoomfactor ranges or zoom thresholds.

In some examples, when zooming in or zooming out, there is hand-offbetween different cameras as respective zoom thresholds are reached. Forexample, a user of the camera device may initially capture video contentusing the ultra-wide camera with zoom factor of 0.5×, and a cameraprocessor of the camera device may process the frames captured by theultra-wide camera. The user may then zoom in (e.g., using a button orpinch motion). In this example, during the zooming in, the cameraprocessor may process the frames captured by the ultra-wide camera untilthe zoom threshold of the ultra-wide camera is reached (e.g., 1×). Thecamera processor may then process the frames captured by the widecamera.

One example way in which to maintain quality of the captured videocontent is for each camera to determine, prior to video capture,respective camera parameters. Examples of the camera parameters include3 A parameters (automatic focus (AF), auto white balance (AWB), andautomatic exposure control (AEC) parameters), as described in moredetail. Even if a camera processor is not processing frames from aparticular camera, the camera parameters are already known. Then, whenthe camera processor is to switch processing frames from a currentcamera to a subsequent camera, there is no delay in determining thecamera parameters for the subsequent camera, since the camera parametersfor the subsequent camera were pre-determined. In this way, the hand off(e.g., switch in processing frames) from the current camera to thesubsequent camera can occur with limited impact on quality and limiteddelay.

In addition to camera devices including multiple cameras to supportzooming in or zooming out, camera devices also provide an option forslow motion video capture. In slow motion video capture, a camera of acamera device captures frames at a first rate that is greater than asecond rate at which the captured frames are displayed. As an example, acamera may capture 10 seconds of video content at a capture rate of 120frames per second (fps). In this example, there are 1200 frames (e.g.,120 fps*10 seconds). The camera device, or some other device, maydisplay the 1200 frames at a display rate of 30 fps. In this example,the 1200 frames would be displayed over 40 seconds (e.g., 1200 frames/30fps). Therefore, in this example, the 10 seconds of video content isdisplayed over 40 seconds, and the viewer perceives the video content asbeing in slow motion (e.g., rate of movement of objects in the videocontent is slower than the rate at which the objects move in real-life).

There may be technical difficulties in enabling zooming in or zoomingout with slow motion video capture enabled. For example, in response torequest to zoom in or zoom out, the camera processor performs digitalzoom in or zoom out on the frames captured by the current camera untilthe zoom threshold is reached. As an example, the current camera may bethe ultra-wide camera, and in response to zoom in, the camera processormay perform digital zoom in on the frames capture by the current camerauntil the zoom threshold of 1× is reached.

Digital zoom in or zoom out includes cropping and resizing of framesduring a linear increase or decrease of a zoom factor. For instance, thecamera processor may receive frames from the ultra-wide camera, and toperform 0.6× zoom, the camera processor may crop 10% of the perimeter ofthe frame, and resize the result of the cropping, and so forth. Thecamera processor may perform the digital zoom in or zoom out byincreasing the zoom factor, over a period of time, until the zoomthreshold is reached (e.g., 0.6×, 0.7×, 0.8×, 0.9×, until 1×). Theexample is described with respect the ultra-wide camera, but the exampletechniques of zooming in or zooming out may be similar for the othercameras.

In some examples, the digital zoom in or out causes a decrease in imagequality due to the resizing. For example, the camera parameters may notbe precise for the frames that are captured during the time when thecamera processor is performing the zooming in or zooming out. Forexample, the camera parameters may be set based on a particular zoomfactor (e.g., 0.5× for ultra-wide, 1× for wide, and 2× for telephotocameras). During the zooming in or zooming out, the captured frames maybe effectively considered as frames captured with different videocontent as compared to the video content without zooming in or zoomingout. The camera parameters, such as automatic focus (AF), auto whitebalance (AWB), and automatic exposure control (AEC) parameters,determined for the particular zoom factor may not be precise for framescaptured with different video content, where frames captured during thezooming in or zooming out effectively have different video content.

The above describes examples of digital zoom. However, similar issues ofdecrease in image quality for capturing using optical zoom. In opticalzoom, a lens and/or sensor of the camera moves to provide zooming in orzooming out. The camera parameters may be set for the lens or sensor ina particular location, and movement of the lens or sensor may result inthe camera parameters being imprecise.

After a zoom threshold for a current camera is reached, the cameraprocessor outputs frames captured by the subsequent camera. In thiscase, the frames captured by the subsequent camera are captured with thealready determined camera parameters for the subsequent camera.Accordingly, the image quality is relatively high for the framescaptured by the subsequent camera. The above example process ofgenerating frames with lower image quality then repeats if there isanother request for zoom in or zoom out with the subsequent camera.

As described above, in slow motion video capture, the rate at whichframes are captured is greater than the rate at which frames aredisplayed, so as to cause a slow-motion affect. As also described,during zooming in or zooming out, the image quality of the capturedframes may be relatively low. In some examples, because these frameshaving lower image quality are displayed over a longer amount of timethan the amount of time for capturing, there may be an undesirably longperiod of time where low quality frames are displayed. For example, thecurrent camera may be capturing frames at 120 fps, and the amount oftime to zoom in or out to a zoom threshold may be 0.5 seconds. In thisexample, during the zooming in or out, the current camera may capture 60frames (e.g., 120 fps*0.5 seconds), and the image quality of the 60frames may be poorer than without zooming in or out. The display ratemay be 30 fps. Therefore, the 60 frames may be displayed over 2 seconds(e.g., 60 frames/30 fps). In this example, although there may be only0.5 seconds worth of poor-quality frames, it may take 2 seconds todisplay the poor-quality frames, which may be undesirable to a viewer.

In accordance with one or more examples described in this disclosure,during normal operation (e.g., without zoom in or zoom out) with slowmotion enabled, a camera may capture a first set of frames at a firstrate (e.g., 120 fps or greater), and during zoom in or zoom out withslow motion enabled, the camera may capture a second set of frames at asecond rate (e.g., 30 fps or less) that is lower than the first rate.The image quality of the second set of frames may be poorer than theimage quality of the first set of frames.

The camera device or some other device may display the first set forframes and the second set of frames at a third rate (e.g., 30 fps). Inthis example, if 9.5 seconds of video content is captured by the firstset of frames, and 0.5 seconds of video content is captured by thesecond set of frames, then there are 1,140 frames (e.g., 9.5 seconds*120fps) with relatively high quality of image content and 15 frames (e.g.,0.5 seconds*30 fps) with relatively low quality of image content. Then,during display, there would be 38 seconds of playback of frames withrelatively high quality of image content (e.g., 9.5 seconds of videocontent is expanded to 38 seconds to create slow motion effect). Also,there would be 0.5 seconds of playback of frames with relatively lowquality of image content (e.g., 0.5 seconds of video content isdisplayed within 0.5 seconds). Because the amount of time that theframes having relatively low quality image content is reduced down to0.5 seconds from 2 seconds if the capture rate would have been 120 fps,there may be little to no impact on viewer experience.

FIG. 1 is a block diagram of a device configured to perform one or moreof the example techniques described in this disclosure. Examples ofcamera device 10 include stand-alone digital cameras or digital videocamcorders, camera-equipped wireless communication device handsets, suchas mobile telephones having a plurality of cameras, cellular orsatellite radio telephones, camera-equipped personal digital assistants(PDAs), panels or tablets, gaming devices, computer devices that includecameras, such as so-called “web-cams,” or any device with digitalimaging or video capabilities.

As illustrated in the example of FIG. 1, camera device 10 includescameras 12A-12C (e.g., each having an image sensor and lens), cameraprocessor 14 and local memory 20 of camera processor 14, a centralprocessing unit (CPU) 16, a graphical processing unit (GPU) 18, userinterface 22, memory controller 24 that provides access to system memory30, and display interface 26 that outputs signals that cause graphicaldata to be displayed on display 28. Although the example of FIG. 1illustrates one camera processor 14, in some examples, there may be aplurality of camera processors (e.g., one for each of cameras 12A-12C).Techniques described in this disclosure with respect to camera processor14 may include examples where one or more camera processors perform theexample techniques.

Also, although the various components are illustrated as separatecomponents, in some examples the components may be combined to form asystem on chip (SoC). As an example, camera processor 14, CPU 16, GPU18, and display interface 26 may be formed on a common integratedcircuit (IC) chip. In some examples, one or more of camera processor 14,CPU 16, GPU 18, and display interface 26 may be in separate IC chips.Various other permutations and combinations are possible, and thetechniques should not be considered limited to the example illustratedin FIG. 1.

The various components illustrated in FIG. 1 (whether formed on onedevice or different devices) may be formed as at least one offixed-function or programmable circuitry such as in one or moremicroprocessors, application specific integrated circuits (ASICs), fieldprogrammable gate arrays (FPGAs), digital signal processors (DSPs), orother equivalent integrated or discrete logic circuitry. Examples oflocal memory 20 and system memory 30 include one or more volatile ornon-volatile memories or storage devices, such as random access memory(RAM), static RAM (SRAM), dynamic RAM (DRAM), erasable programmable ROM(EPROM), electrically erasable programmable ROM (EEPROM), flash memory,a magnetic data media or an optical storage media.

The various units illustrated in FIG. 1 communicate with each otherusing bus 32. Bus 32 may be any of a variety of bus structures, such asa third generation bus (e.g., a HyperTransport bus or an InfiniBandbus), a second generation bus (e.g., an Advanced Graphics Port bus, aPeripheral Component Interconnect (PCI) Express bus, or an AdvancedeXtensible Interface (AXI) bus) or another type of bus or deviceinterconnect. The specific configuration of buses and communicationinterfaces between the different components shown in FIG. 1 is merelyexemplary, and other configurations of camera devices and/or other imageprocessing systems with the same or different components may be used toimplement the techniques of this disclosure.

Camera device 10 includes cameras 12A-12C. Each one of cameras 12A-12Cmay be configured to capture frames having image content in accordancewith respective camera parameters, as described below. Cameras 12A-12Cmay output their captured frames to camera processor 14 for imageprocessing. As described in more detail below, in one or more examples,camera processor 14 may control the rate at which cameras 12A-12Ccapture frames, such as during zooming in or zooming out, to reduce thenumber of frames, having relatively poorer quality, that are displayed.

Camera processor 14 outputs the resulting frames with image content(e.g., pixel values for each of the image pixels) to system memory 30via memory controller 24. That is, camera processor 14 may generatevideo content for playback that includes the resulting frames. In one ormore examples described in this disclosure, the frames may be furtherprocessed for generating one or more frames for display. In someexamples, rather than camera processor 14 performing the blending, GPU18 or some other circuitry of camera device 10 may be configured toperform the blending.

This disclosure describes the examples techniques as being performed bycamera processor 14. However, the example techniques should not beconsidered limited to camera processor 14 performing the exampletechniques. For instance, camera processor 14 in combination with CPU16, GPU 18, and/or display interface 26 may be configured to perform theexample techniques described in this disclosure. In some examples, eachof cameras 12A-12C may include processing circuitry. Accordingly, theexamples of the processor that may be perform the example techniquesinclude processing circuitry that is part of cameras 12A-12C. Forexample, one or more processors may be configured to perform the exampletechniques described in this disclosure. Examples of the one or moreprocessors include camera processor 14, CPU 16, GPU 18, displayinterface 26, processing circuitry of one or more of cameras 12A-12C, orany combination of one or more of camera processor 14, CPU 16, GPU 18,display interface 26, and processing circuitry of one or more of cameras12A-12C.

CPU 16 may comprise a general-purpose or a special-purpose processorthat controls operation of camera device 10. A user may provide input tocamera device 10 to cause CPU 16 to execute one or more softwareapplications. The software applications that execute on CPU 16 mayinclude, for example, a media player application, a video gameapplication, a graphical user interface application or another program.The user may provide input to camera device 10 via one or more inputdevices (not shown) such as a keyboard, a mouse, a microphone, a touchpad or another input device that is coupled to camera device 10 via userinterface 22.

One example of the software application is a camera application. CPU 16executes the camera application, and in response, the camera applicationcauses CPU 16 to generate content that display 28 outputs. GPU 18 may beconfigured to process the content generated by CPU 16 for rendering ondisplay 28. For instance, display 28 may output information such aslight intensity, whether flash is enabled, and other such information.The user of camera device 10 may interface with display 28 to configurethe manner in which the images are generated (e.g., with or withoutflash, focus settings, exposure settings, and other parameters). As oneexample, the user of camera device 10 may select to take multiple frames(e.g., multiple pictures), where two or more of the multiple frames areblended together (e.g., to reduce blur) to generate one or more outputframes. However, taking multiple frames that are blended together may bethe default option (e.g., no user selection is needed). The cameraapplication also causes CPU 16 to instruct camera processor 14 tocapture and process the frames of image content captured by camera 12 inthe user-defined manner.

Memory controller 24 facilitates the transfer of data going into and outof system memory 30. For example, memory controller 24 may receivememory read and write commands, and service such commands with respectto memory 30 in order to provide memory services for the components incamera device 10. Memory controller 24 is communicatively coupled tosystem memory 30. Although memory controller 24 is illustrated in theexample of camera device 10 of FIG. 1 as being a processing circuit thatis separate from both CPU 16 and system memory 30, in other examples,some or all of the functionality of memory controller 24 may beimplemented on one or both of CPU 16 and system memory 30.

System memory 30 may store program modules and/or instructions and/ordata that are accessible by camera processor 14, CPU 16, and GPU 18. Forexample, system memory 30 may store user applications (e.g.,instructions for the camera application), resulting frames from cameraprocessor 14, etc. System memory 30 may additionally store informationfor use by and/or generated by other components of camera device 10. Forexample, system memory 30 may act as a device memory for cameraprocessor 14.

As illustrated, camera device 10 includes cameras 12A-12C. Each ofcameras 12A-12C may be configured with different zoom factors and maycapture different amounts of viewing angles. In some examples, each ofcameras 12A-12C may be configured with different lens geometries anddifferent levels of optical zoom (e.g., different zoom factor rangesbased on how much lenses or sensors of cameras 12A-12C can move). Theviewing angles may be the field of view (FOV). In some examples, cameras12A-12C with the same zoom factor may be capturing the same FOV.

Camera 12A may be an ultra-wide camera (e.g., configured to capture 120°to 180° of viewing angle), camera 12B may be a wide camera (e.g.,configured to capture 60° to 120° of viewing angle), and camera 12C maybe a telephoto camera (e.g., configured to capture 10° to 60° of viewingangle). Camera 12A may be configured to provide a zoom factor from afirst zoom threshold of 0.5× to a second zoom threshold of 1×. Camera12B may be configured to provide a zoom factor from a third zoomthreshold of 1× to a fourth zoom threshold of 2×. Camera 12C may beconfigured to provide a zoom factor greater than a fifth zoom thresholdof 2×.

In the above examples, the second zoom threshold and the third zoomthreshold are the same, and the fourth zoom threshold and the fifth zoomthreshold are the same. However, the techniques are not so limited. Insome examples, there may be overlap in the zoom factor ranges of cameras12A-12C. For instance, the second zoom threshold for camera 12A may be1.3× and the third zoom threshold for camera 12B may be 1×. In thisexample, from 1× to 1.3× zoom, both cameras 12A and 12B can provide suchzoom factors.

The examples of the number of cameras 12 on camera device 10, theviewing angles, and the zoom factor ranges and zoom thresholds areprovided merely to assist with understanding. The example techniquesshould not be considered limited to such examples. There may be more orfewer cameras 12, the viewing angles may be different, and the zoomfactor ranges and thresholds may be different.

The zoom factor ranges associated with each of cameras 12A-12C need notnecessarily mean that sensors or lenses of cameras 12A-12C move toprovide the desired zoom, although that this possible. That is, opticalzoom is one way to provide zoom, but the techniques are not limited tooptical zoom. In some examples, the zoom factor ranges associated withcameras 12A-12C may indicate from which camera of cameras 12A-12C cameraprocessor 14 is to receive frames for performing digital zoom in or zoomout. Therefore, cameras 12A-12C being configured for particular zoomfactor ranges may include examples where sensors or lenses of cameras12A-12C are moving to provide optical zoom in or zoom out and/or fromwhere camera processor 14 receives frames for performing digital zoom inor zoom out.

Camera processor 14 is configured to receive image frames from cameras12A-12C, and process the image frames to generate output frames fordisplay (e.g., generate video content for playback). CPU 16, GPU 18,camera processor 14, or some other circuitry may be configured toprocess the output frame that includes image content generated by cameraprocessor 14 into images for display on display 28. In some examples,GPU 18 may be further configured to render graphics content on display28.

Cameras 12A-12C may be configured to capture frames in accordance withtheir respective camera parameters that camera processor 14 and/or CPU16 may determine. For instance, prior to the user of camera device 10capturing frames, cameras 12A-12C may determine camera parametersreferred to as 3 A parameters (automatic focus (AF), auto white balance(AWB), and automatic exposure control (AEC) parameters).

For automatic focus, CPU 16 may determine an area of the image on whichto focus so that that the image content in the focused areas is infocus. Other areas may be in focus, but not necessarily in focus,depending on aperture size of cameras 12A-12C. As one example, CPU 16may utilize phase detection autofocus (PDAF) techniques. CPU 16 may thencontrol cameras 12A-12C (e.g., such as adjust focal length by adjustinglocation of the lens of cameras 12A-12C) based on area to focus. In someexamples, CPU 16 may determine objects that are in the foreground andmay control cameras 12A-12C to focus on the foreground objects. Asanother example, CPU 16 may utilize object detection techniques, likeface detection, to determine area to focus.

For auto exposure control, CPU 16 may determine the aperture and shutterspeed of cameras 12A-12C based on factors such as external lightingconditions. As one example, camera processor 14 may determineinformation indicative of light, and adjust the aperture and shutterspeed accordingly to keep brightness of the image constant (e.g., keepthe brightness of a desired region of a frame in the middle band ofbrightness values). For example, if there is too much light (i.e.,overexposed), then details in the images may be lost, and if there istoo little light (i.e., underexposed), then the image may be too darkand details may not be visible. There are various ways in which exposureis controlled, using “metering” such as center-weighted metering mapwhere brightness at the center of the image is kept higher andprogressively lowered near the edges of the image. In some examples,center-weighted metering ensures that the center of the image has valueswithin a middle range of the brightness levels possible (i.e., themid-tone). The outer areas may be brighter, darker or the same dependingon the actual content of the scene being captured. The techniquesdescribed in this disclosure are not limited to examples ofcenter-weighted metering maps (e.g., not limited to metering maps thatare biased toward exposure control for a middle of the image).

For auto white balance, CPU 16 may determine “color temperature” oflight source, where color temperature refers to the relative warmth orcoolness of the white color. In some cases, captured images may have anunrealistic color cast. In some examples, auto white balance algorithmanalyzes the ratio between red, green and blue components and appliesheuristics that output suggested Red and Blue gain levels. When the R, Bchannels are multiplied by those multipliers, the image will look morebalanced: gray regions will look gray and will not have unnatural colorcast. However, in case of multi-illumination scenes (e.g., where thereis shadows), determining the multipliers may be more challenging sincedifferent multipliers are ideal for different regions.

In one or more examples, camera processor 14 may store respective cameraparameters (e.g., 3 A camera parameters) for each of cameras 12A-12C.Cameras 12A-12C may utilize AF parameters for adjusting focal length andAEC parameters causing cameras 12A-12C to operate according to a shutterand aperture size. Camera processor may utilize the AWB as part ofprocessing the frame. In some examples, each of cameras 12A-12C maycapture frames in accordance with their respective camera parameters.However, camera processor 14 may process the frames from only one ofcameras 12A-12C and the remaining frames may be “flushed” (e.g., notprocessed or stored for display). As described below, in some examples,there may be times when the frames from two different cameras 12A-12Care processed, but in general, frames from only one of cameras 12A-12Care processed by camera processor 14.

In some examples, camera processor 14 may be configured as an imageprocessing pipeline. For instance, camera processor 14 may include acamera interface that interfaces between camera 12 and camera processor14. Camera processor 14 may include additional circuitry to process theimage content.

In some examples, camera processor 14 may be configured to performdigital zoom in or digital zoom out. Although described with respect tocamera processor 14 performing digital zoom in or digital zoom out, insome examples, cameras 12A-12C may be configured to perform digital zoomin or digital zoom out. For instance, cameras 12A-12C may each includeprocessing circuitry to perform the digital zoom in or zoom out.

To zoom in, camera processor 14 may perform cropping and resizing offrames received from one of cameras 12A-12C. As an example, in responseto receiving a request to zoom in from 1× to 2×, camera processor 14 maycrop out 50% of the perimeter of a frame received from camera 12B, andresize the cropped frame. In this example, the center 50% of frame isnow resized to the full size of the frame, and the image content appearsto be twice as large.

To avoid sudden jumps in zooming, when zooming from one zoom thresholdto another (e.g., 1× to 2×), camera processor 14 and/or cameras 12A-12Cmay gradually increase or decrease the zoom factor. For example, if thezoom factor were suddenly changed from 1× to 2×, the viewer experiencemay be undesirable. Therefore, the zoom factor may slowly change. As oneexample, the zoom factor (e.g., by camera processor 14 and/or cameras12A-12C) may increase or decrease linearly, so that the zoom factor is1×, then 1.1×, then 1.2×, and so forth until 2×, as one example. Linearincrease or decrease of zoom factor and a step-size of 0.1× are bothprovided as one example, and should not be considered limiting. Also, asdescribed above, there may be at least two ways in which the zoom factorchanges, and the two ways may be used individually or together: (1)based on digital zoom where camera processor 14 crops and resizes and(2) based on optical zoom with movement of sensor or lenses of cameras12A-12C.

To reiterate, a user of camera device 10 may zoom in or zoom out ofvideo content that camera device 10 recording. In response to a requestto zoom in or zoom out, camera processor 14 may process frames capturedby one of cameras 12A-12C until the zoom factor reaches a zoom thresholdfor the one of cameras 12A-12C. Because the zoom factor may graduallychange from one zoom threshold to another, there may be certain amountof time that elapses for the zoom factor to reach the zoom threshold.For example, it may take approximately 0.5 seconds to reach the zoomthreshold. In some examples, the range of time it takes to reach a zoomthreshold is approximately between 0.2 seconds to 0.7 seconds.

Accordingly, camera processor 14 may process frames captured by a firstcamera of cameras 12A-12C based on the camera parameters for the firstcamera of cameras 12A-12C. In response to a request to zoom in or zoomout, camera processor 14 may process frames captured by the first cameraduring the zoom in or zoom out to a zoom threshold for the first cameraof cameras 12A-12C. For example, during the zoom in or zoom out to azoom threshold for the first camera (e.g., the 0.5 seconds), the firstcamera captures frames based on the camera parameters that wereoriginally determined. For example, the zoom factor for the first cameraof cameras 12A-12C may originally be at 1×, and the camera parameters(e.g., 3 A parameters of AF, AWB, and AEC) may have been determined whenthe zoom factor for the first camera is 1×. The zoom factor for a secondcamera of cameras 12A-12C may originally be at 2×, and the cameraparameters (e.g., 3 A parameters) may have been determined when the zoomfactor for the second camera is 2×.

Then, during the time the zoom factor changes from 1× to the zoomthreshold of 2× (e.g., the 0.5 seconds), the first camera may keepcapturing frames based on the camera parameters determined with zoomfactor of 1×. That is, although the zoom factor may be changing (e.g.,1.1×, 1.2×, 1.3×, and so forth to 2×), the first camera may captureframes based on the camera parameters determined with zoom factor of 1×.After reaching the zoom factor of 2×, camera processor 14 may startprocessing frames captured by the second camera of cameras 12A-12C usingthe camera parameters for the second camera of cameras 12A-12Cdetermined based on the 2× zoom factor for the second camera of cameras12A-12C.

In the above example, during the time the zoom factor changes from 1× tothe zoom threshold of 2× (e.g., the 0.5 seconds), the first camera maykeep capturing frames based on the camera parameters determined withzoom factor of 1×. In general, the camera parameters for each of cameras12A-12C may be determined based on each of cameras 12A-12C being at arespective first zoom threshold. During the time the zoom factor changesfrom a first zoom threshold to a second zoom threshold for each ofcameras 12A-12C, each of cameras 12A-12C may keep capturing frames basedon the camera parameters determined at the first threshold.

In some examples, during the time when the zoom factor is changing fromthe first zoom threshold to the second zoom threshold, the quality ofthe captured frames may be lower than the quality of the captured frameswhen the zoom factor is not changing. For instance, because the cameraparameters for a first camera of cameras 12A-12C are based on a firstzoom threshold for the first camera, the camera parameters may not beprecisely accurate for the first camera if the zoom factor is not thefirst zoom threshold. As an example, the camera parameters for the firstcamera may be set based on zoom factor of 1×. The camera parameters maynot be accurate for zoom factor of 1.2×. Therefore, frames captured atzoom factor of 1.2× with camera parameters determined for zoom factor of1× may be of lower quality as compared to frames captured at zoom factorof 1×.

As an example, whenever there is zoom, until the zoom ends (e.g., untilthe zoom threshold is reached), the field of view (FOV) may be stable.The camera parameters during the zoom are not reset or recalculated,although the FOV may change from the zooming in or zooming out.Accordingly, while zooming, the camera parameters used for capture andprocessing are the same parameter as were already set before zoomingstarts. This results in zooming FOV not having precise cameraparameters. For example, if the focus object (e.g., AF) lies anywhereother than the center FOV, zooming will result in off focus previewbecause focused object is no longer in FOV. The same applies forexposure (e.g., AEC) and white-balance (AWB). For instance, if the zoomis from a well-lit scene into a shadow, the zooming FOV will remainpoorly lit as it uses per-zoom exposure parameters (i.e., pre-zoom AEC).Therefore, during zooming in or zooming out, the images that arecaptured tend to have poorer quality than when not zooming in or zoomingout.

Although the quality of the frames captured during the time when thezoom factor is changing from the first zoom threshold to the second zoomthreshold may be relatively low, in most instances, this relatively lowquality of frames does not impact viewer experience. For example, eachof cameras 12A-12C may be configured to capture frames at a particularframe rate (e.g., capture rate 30 frames per seconds (fps)). In somecases, camera device 10 displays the frames at a display rate that issame as capture rate (e.g., display rate is 30 fps and capture rate is30 fps).

As described above, it may take 0.5 seconds to zoom from one zoomthreshold to another. Therefore, during this 0.5 seconds, there may beapproximately 15 frames that are captured with relatively low quality,assuming capture rate of 30 fps (e.g., 30 fps*0.5 seconds=15 frames). Ifthe display rate is also 30 fps, then it will take 0.5 seconds todisplay these frames with relatively low quality. The viewer may notperceive or may not be impacted by 0.5 seconds worth of poor-qualityframes being displayed.

However, in certain cases, having poor-quality frames may impact viewerexperience. As one example, the user may configure camera device 10 tocapture frames for slow motion. In slow motion, the capture rate offrames is greater than the display rate of frames. Therefore, it takesmore time to display the frames than the amount of time it took tocapture the frames. This results in the viewer perceiving slow motionsince the image content appears to be moving slower.

As an example, assume that the capture rate is 240 fps and the displayrate is 30 fps. In this example, one second of video capture results in240 frames. With a display rate of 30 fps, it will take 8 seconds (e.g.,240 frames/30 fps) to display the one second of video. In this example,from the viewer's perspective, the objects in the captured frames wouldappear to move at ⅛^(th) the rate that the objects are moving inreal-life, hence creating the perception of slow motion.

In some examples, the user of camera device 10 may start video capturein normal mode. Then, the user may cause camera device 10 to startcapturing in slow motion. After a while, the user may cause cameradevice 10 to revert back to capturing in normal mode. For example,during normal mode, cameras 12A-12C may capture frames at 30 fps. Duringslow motion mode, cameras 12A-12C may capture frames at 120 fps orgreater.

For better visual experience, during the slow motion, the user may zoomin or zoom out. For instance, the first camera of cameras 12A-12C may beset for a zoom factor of 0.5×, where the zoom thresholds for the firstcamera is 0.5× to 1×. Initially, the first camera may capture at 30 fpswith 0.5×. Then, the user may cause camera device 10 to capture in slowmotion mode. In this example, CPU 16 and/or camera processor 14 maycause the first camera to capture at 240 fps. While the first camera iscapturing frames, the user may zoom in, so that the zoom factorincreases from 0.5× to 1× (e.g., over approximately 0.5 seconds). Then,camera processor 14 may start to process frames captured by a secondcamera of cameras 12A-12C, having a zoom factor range of 1× to 2×.Because slow motion is still enabled, CPU 16 and/or camera processor 14may cause the second camera to capture at 240 fps with zoom factor of1×. At some point later, the user may cause camera device 10 to exitslow motion, and camera processor 14 may process frames captured by thesecond camera at 30 fps.

In this way, there is handoff and switching between the first camera andsecond camera to allow slow motion video capture with zooming in orzooming out. For instance, camera processor 14 processes frames from afirst camera of cameras 12A-12C until the zoom threshold for the firstcamera is reached, and then camera processor 14 processes frames from asecond camera of cameras 12A-12C. The capture rate of cameras 12A-12Cmay be based on whether slow motion is enabled or not (e.g., highercapture rate for slow motion and lower capture rate for normal capture).

However, there may be certain issues with enabling zooming in or zoomingout with slow motion. As described above, the frames that are capturedduring the zooming in or zooming out tend to have poorer quality becausethe camera parameters are not precise for the zoom factors, but there islow impact because the amount of time it takes to display these frameshaving the poorer quality is not long (e.g., 0.5 seconds). For zoomingin or out with slow motion video capture enabled the amount of time ittakes to display these frames having the poorer quality is relativelylong.

For example, if the capture rate is 240 fps, then during the 0.5 secondsit takes to go from a first zoom threshold to a second zoom threshold ofone of cameras 12A-12C, the number of frames that are captured is 120frames (e.g., 240 fps*0.5 seconds). If the display rate is 30 fps, thenit takes four seconds to display the 120 frames (e.g., 120 frames/30fps). Therefore, in this example, there would be four seconds whereframes having relatively poor quality are displayed. As described above,in normal mode (e.g., not slow motion), there would 0.5 seconds whereframes having relatively poor quality are displayed. Accordingly, inslow motion with zooming in or zooming out, where the capture rate is240 fps, the amount of time that frames having poor quality aredisplayed can be eight times as long as normal mode with zooming in orzooming out. For higher capture rates, the amount of time that frameshaving poor quality are displayed can be much larger (e.g. 960 fpsresults in 16 seconds of poor quality because 960 fps/30 fps*0.5 secondsequals 16 seconds).

This disclosure describes example techniques to enable zooming in orzooming out with slow motion enabled. For example, with slow motionenabled, during the zooming in or zooming out to a zoom threshold of acamera of cameras 12A-12C, camera processor 14 may receive frames at alower rate than at a rate at which camera processor 14 receives frameswith slow motion enabled but without zooming in or zooming out.

As an example, camera processor 14 may receive a first set of framescaptured by a first camera of cameras 12A-12C at a first rate with videocapture in slow motion enabled (e.g., the first rate is 120 fps orgreater). Camera processor 14 may process the first set of frames togenerate video content for display. CPU 16 and/or camera processor 14may receive a selection to zoom in or zoom out. During the zoom in orzoom out to a zoom threshold for the first camera, camera processor 14may receive a second set of frames captured by the first camera at asecond rate that is less than the first rate (e.g., the second rate is30 fps). Camera processor 14 may process the second set of frames togenerate video content for display. For example, camera processor 14 maygenerate video content for playback, at a third rate (e.g., 30 fps) thatis less than the first rate, that includes the first set of frames andthe second set of frames. As an example, camera processor 14 generatingvideo content for playback may refer to examples where camera processor14 provides the first set of frames and the second set of frames so thatdisplay interface 26 can output for display.

In this example, display interface 26 may output, for display, generatedvideo content that includes the first set of frames and the second setof frames at a third rate that is less than the first rate (e.g., thethird rate is 30 fps). In some examples, display interface 26 may beconfigured to generate the video content for playback. For example, togenerate the video content for playback, display interface 26 mayreceive the first set of frames and the second set of frames and outputthe first set of frames, and then output the second set of frames in amanner that causes the viewer to perceive video playback of the frames.In general, camera processor 14, display interface 26, or some othercomponent generating video content for playback may refer to cameraprocessor 14, display interface 26, or some other component arranging,receiving, or processing the sets of frames (e.g., first and second setsof frames) in a manner so that the sets of frames can be output fordisplay.

In an illustrative example, in normal mode, camera processor 14 mayreceive frames at a rate of 30 fps from camera 12A that is currently atzoom factor of 0.5×. Accordingly, camera 12A is configured to captureframes at 30 fps. In this example, assume that camera 12A captured 8seconds of frames with capture rate of 30 fps, and therefore, captured240 frames.

Then, the user may enable slow motion. With slow motion enabled, cameraprocessor 14 may receive frames at a rate of 120 fps from camera 12Athat is currently at zoom factor of 0.5×. In this example, camera 12A isconfigured to capture frames at 120 fps because of slow motion beingenabled. Assume that camera 12A captured 4 seconds of frames withcapture rate of 120 fps, and therefore, captured 480 frames.

The user may then enable zoom in (or there may be automatic zoom such aswith object or face tracking), so that the zoom factor changes from 0.5×to 1× (e.g., the zoom threshold for camera 12A). During the 0.5 secondsit takes to go from a zoom factor of 0.5× to 1× (e.g., due to change inlens/sensor position or progressive zoom), rather than capturing framesat 120 fps, camera 12A may capture frames at 30 fps to reduce the numberof frames having lower quality that are captured during the time ittakes to go from a zoom factor of 0.5× to 1×, and camera processor 14may receive frames at 30 fps. As described above, the frames capturedfor the 0.5 seconds for the zoom factor to reach the zoom threshold tendto have lower quality. Therefore, there will be 15 frames having lowerquality.

After reaching the zoom factor of 1×, camera processor 14 may receiveframes from camera 12B. Because slow motion is still enabled and thereis no more zooming in, camera processor 14 may receive frames fromcamera 12B at rate of 120 fps. Assume there is 4 seconds of frames withcapture rate of 120 fps, and therefore, camera 12B captured 480 frames.

Then assume that the user turns off slow motion. Assume that there isanother 10 seconds of frames captured by camera 12B at 30 fps, resultingin 300 frames.

In this example, if the display rate is 30 fps, then the amount of timeit would take to display the frames is as follows. Initially there was 8seconds with capture rate of 30 fps, resulting in 240 frames. It wouldtake 8 seconds at 30 fps to display the 240 frames. Then, there was 4seconds of frames with capture rate of 120 fps, resulting in 480 frames.It would take 16 seconds at 30 fps to display the 480 frames.

Then zooming in was enabled, where 0.5 seconds of frames were capturedwith 30 fps, resulting in 15 frames. It would take 0.5 seconds at 30 fpsto display the 15 frames. As described above, the quality of these 15frames may be relatively poor due to the imprecision in the cameraparameters during the zooming in. By reducing the capture rate to 30fps, there is only 0.5 seconds worth of time when the poor-qualityframes are displayed, as compared to 2 seconds if the capture rate werekept at 120 fps.

Then, there was another 4 seconds of frames captured at 120 fps,resulting in 480 frames. It would take 16 seconds to display the 480frames at 30 fps. Slow motion was then turned off with 10 seconds offrames captured at 30 fps, resulting in 300 frames. It would take 10seconds to display the 300 frames at 30 fps.

In the above example, each one of cameras 12A-12C is configured tocapture frames at 120 fps during slow motion or 30 fps during normalvideo. However, in some examples, the capture rate for two or more ofcameras 12A-12C may be different. As one example, during slow motion,camera 12A may capture at 960 fps, camera 12B may capture at 480 fps,and camera 12C may capture at 120 fps. The capture rate for each ofcameras 12A-12C may be a user configurable option.

Camera processor 14 may perform some initial image processing on theplurality of frames, but such initial image processing is not necessaryin all examples. Camera processor 14 may output the plurality of framesto system memory 30 for storage. In some examples, rather than or inaddition to, outputting the plurality of frames to system memory 30,camera processor 14 may output the plurality of frames to local memory20. As another example, camera processor 14 may store each of theplurality of frames, as each frame is captured, into local memory 20 fortemporary storage and then move the plurality of frames from localmemory 20 to system memory 30.

FIG. 2 is a block diagram illustrating a camera processor of the deviceof FIG. 1 in further detail. As illustrated, cameras 12A-12C may eachcapture frames that are output to camera processor 14. As describedabove, each of cameras 12A-12C may be associated with different viewingangles and different ranges for the zoom factor between respective zoomthresholds. In this way, there are parallel streams that are outputcamera processor 14.

In one or more examples, prior to frame capture or possibly a first fewcaptured frames, are utilized to determine the camera parameters. Forinstance, camera processor 14 and/or CPU 16 may determine of automaticfocus (AF), auto white balance (AWB, and automatic exposure control(AEC) parameters, referred to as 3 A parameters for each of cameras12A-12C. As illustrated, camera parameters 34A may be the cameraparameters for camera 12A, camera parameters 34B may be the cameraparameters for camera 12B, and 3 A parameters 3 A may be the cameraparameters for camera 12C. For ease of illustration, camera parameters34A-34C are stored locally on cameras 12A-12C, respectively. However,camera parameters 34A-34C may be stored elsewhere, such as in localmemory 20 and/or system memory 30, as two examples.

In some examples, once camera parameters 34A-34C are determined, cameraparameters 34A-34C are likely to remain stable for the rest of therecording. In some examples, camera parameters 34A-34C may not berecalculated because such recalculation can take time resulting indelays or poor quality. Camera processor 14 and/or CPU 16 may determinecamera parameters 34A-34C individually (e.g., different parameters foreach), or camera processor 14 and/or CPU 16 may determine one of cameraparameters 34A-34C and apply the determined one to the others of cameraparameters 34A-34C (e.g., same values of defocus length, luma index, andcolor temperatures for camera parameters 34A-34C).

However, in some examples, it may be possible to recalculate cameraparameters 34A-34C for cameras 12A-12C whose frames are not beingprocessed. For example, if frames from camera 12A are being processed,frames captured by cameras 12B and 12C may be utilized to update cameraparameters 34B and 34C, respectively. With such calculations, it may bepossible to compensate for field of view (FOV) changes when switchingbetween cameras 12A-12C.

In FIG. 2, camera processor 14 includes switch 36 that is configured toselectively select the stream from one of cameras 12A-12C. In somecases, as explained below, switch 36 may be configured to select two ofthe three streams. However, generally, switch 36 may select one of thestream of cameras 12A-12C. The unselected streams may be bypassed fromall processing and directly into sink/flush.

As illustrated, camera processor 14 includes rate controller 38. Ratecontroller 38 may be configured to select a rate at which circuitry ofcamera processor 14 receives frames. As one example, rate controller 38may be configured to set the capture rate at which cameras 12A-12Ccapture frames. For instance, rate controller 38 may cause cameras12A-12C to capture frames at 30 fps, 120 fps, 240 fps, 960 fps, etc. Insuch examples, the sensors of cameras 12A-12C may sense light and outputcurrents indicative of the light and color based on the capture rate(e.g., 30 times a second for 30 fps). Rate controller 38 may set therate of cameras 12A-12C to be the same or be different.

There may be other ways in which rate controller 38 may select the rateat which circuitry of camera processor 14 receives frames. For instance,cameras 12A-12C may each capture frames at a relatively high rate (e.g.,960 fps), and rate controller 38 may be configured to drop frames toachieve the desired rate. For instance, rate controller may drop everyframe expect every 8^(th) frame, resulting in an effective rate of 120fps (e.g., 960 fps/8=120 fps).

In this disclosure, camera processor 14 receiving frames at a particularcapture rate refers to examples where the capture rate of cameras12A-12C is set to the particular rate, and examples where framescaptured by cameras 12A-12C are dropped to effectively achieve theparticular capture rate. There may be other ways in which cameraprocessor 14 may receive frames at a particular rate (e.g., capturerate) and the techniques described in this disclosure are not limited toany set technique.

Camera processor 14 includes digital zoom circuit 40A, processingcircuit 42A, and buffer 44A. Camera processor 14 may optionally includedigital zoom circuit 40B, processing circuit 42B, and buffer 44B.Example uses of digital zoom circuit 40B, processing circuit 42B, andbuffer 44B are described in more detail below. For ease ofunderstanding, the example techniques are described with respect todigital zoom circuit 40A, processing circuit 42A, and buffer 44A.

Digital zoom circuit 40A or 40B may be part of cameras 12A-12C ratherthan or in addition to being part of camera processor 14. Also, digitalzoom circuit 40A and/or 40B may not be necessary in all examples. Forinstance, in some examples, optical zoom may be sufficient. In someexamples, zooming in or zooming out may be based on both optical zoomand digital zoom provided by digital zoom circuit 40A and/or 40B. Toimplement optical zoom, camera processor 14 may include circuitry thatsets the location of the sensor and/or lens of cameras 12A-12C toachieve the desired zoom factor.

Digital zoom circuit 40A receives the frames from the selected one ofcameras 12A-12C, and if zoom is not enabled may pass the frames toprocessing circuit 42A. Processing circuit 42A may be configured toperform any processing, such as filtering or any other processing neededto prepare the output frame to be output. Examples of processing includespatial filtering (e.g., filtering across image content in the sameframe) or edge enhancement, as a few examples. Buffer 44A may beconfigured to store the frames until the frames are output to systemmemory 30. Display interface 26 may then output, for display, theframes. Accordingly, camera processor 14, buffer 44A, and displayinterface 26 may be considered as generating video content for playbackthat includes the frames that are then outputted for display.

In one or more examples, as part of capturing video content, the usermay enable slow motion mode (e.g., video capture with slow motionenabled). Processing circuit 42A may receive a first set of framescaptured by a first camera 12A at a first rate. The first rate may beset by rate controller 38, and may be relatively high (e.g., at least120 fps or greater). Processing circuit 42A may process the first set offrames to generate video content for display (e.g., store in frames inbuffer 44A). First camera 12A may capture the first set of frames basedon camera parameters 34A.

CPU 16 may receive a selection to zoom in or zoom out. For example, theuser may utilize display 28 to provide an input to indicate that theuser desires to zoom in or zoom out of the image content that is beingcaptured. CPU 16 may then output information indicating the selection tozoom in or zoom out to camera processor 14 and/or cameras 12A-12C.

In response to the selection to zoom in or zoom out, camera processor 14may enable performance of zooming in or zooming out. For example, sincecamera processor 14 was receiving frames from first camera 12A, cameraprocessor 14 may cause the position of the lens and/or sensor of camera12A to move to change the focus and provide the zooming in or zoomingout. As another example, digital zoom circuit 40A may perform digitalzoom on the frames captured by camera 12A.

During the zoom in or zoom out to a zoom threshold for the first camera12A, processing circuit 42A may receive a second set of frames capturedby the first camera 12A at a second rate that is less than the firstrate. For example, rate controller 38 may cause first camera 12A tocapture frames at the second rate (e.g., 30 fps). As another example,rate controller 38 may drop frames from first camera 12A to achieve theeffective second rate.

Because the second set of frames are captured during the zoom in or zoomout, and camera parameters 34A are determined without zooming in orzooming out, an image quality of the second set of frames is poorer thanan image quality of the first set of frames. By reducing the rate atwhich the second set of frames are captured (e.g., by setting capturerate or dropping frames to achieve effective capture rate), the numberof frames having poorer quality is minimized.

Camera processor 14 may process the second set of frames to generatevideo content for display. As one example, digital zoom circuit 40A mayperform digital zoom in or digital zoom out until the zoom threshold forthe first camera 12A is reached (e.g., from 0.5× to 1× zoom factor). Forinstance, performing digital zoom in or digital zoom out until the zoomthreshold for the first camera 12A is reached includes digital zoomcircuit 40A performing cropping and resizing during an increase ordecrease of a zoom factor on the second set of frames captured.

Buffer 44A may store the first set of frames and the second set offrames. System memory 30 may receive the first set of frames and thesecond set of frames. Display interface 26 may retrieve the first set offrames and the second set of frames and output, for display on display28, the first set of frames and the second set of frames at a third rate(e.g., 30 fps) that is less than the first rate. For example, cameraprocessor 14, buffer 44A, and display interface 26, either alone or incombination, may be considered as generating video content for playback,at a third rate (e.g., 30 fps) that is less than the first rate, thatincludes the first set of frames and the second set of frames.

In the above example, receiving the selection to zoom in or zoom out isreceived with video capture in slow motion enabled. Also, cameraprocessor 14 may receive the second set of frames with video capture inslow motion enabled.

After the zoom threshold for first camera 12A is reached, cameraprocessor 14 may receive frames from another one of cameras 12. Theswitching from one camera to another is referred to as a hard switch.For example, switch 36 may switch from first camera 12A to second camera12B. In this example, camera processor 14 may receive a third set offrames captured by second camera 12B of the plurality of cameras 12 at afourth rate that is greater than the second rate. As one example, thefourth rate may be 120 fps or greater, and greater than the second rate,which may be 30 fps. Similar to above, rate controller 38 may set thecapture rate of second camera 12B or drop frames to achieve the capturerate. Camera processor 14 may process the third frame (e.g., viaprocessing circuit 42A since there may not be zooming) to generate videocontent for display. Display interface 26 may output, for display ondisplay 28, the third set of frames at the third rate. For example,camera processor 14 and display interface 26 may be considered asgenerating video content for playback, at the third rate, that includesthe first set of frames, the second set of frames, and the third set offrames. In this example, because video capture in slow motion is stillenabled the fourth rate at which camera processor 14 receives andprocesses frames is greater than the display rate of the third rate.

Second camera 12B may capture frames based on camera parameters 34B. Forinstance, during or prior to first camera 12A capturing the first set offrames, CPU 16 and/or camera processor 14 may determine one or more ofAF, AWB, and AEC parameters for each of the plurality of cameras 12A-12C(e.g., determine camera parameters 34A-34C). In such examples, receivingthe third set of frames captured by second camera 12B includes receivingthe third set of frames based on one or more of AF, AWB, and AECparameters determined for second camera 12B (e.g., camera parameters34B) during or prior to the first camera 12A capturing the first set offrames. For instance, as described above, camera parameters 34A-34C maybe stable or may not be redetermined during the capturing of the frames.Therefore, although 3 A parameter 34B was determined when or before thefirst set of frames were captured by camera 12A, camera parameters 34Bmay still be accurate for camera 12B.

As described above, in some examples, camera processor 14 may optionallyinclude digital zoom circuit 40B, processing circuit 42B, and buffer44B. One or more of digital zoom circuit 40B, processing circuit 42B,and buffer 44B (e.g., processing circuit 42B may be present but digitalzoom circuit 40B is not present). Digital zoom circuit 40B, processingcircuit 42B, and buffer 44B may be utilized in examples where there isoverlap in the zoom factor ranges for different cameras 12A-12C. Forinstance, in some examples, the zoom thresholds for camera 12A may be0.5× and 1×, and the zoom thresholds for camera 12B may be 1× to 2×.However, in some examples, the zoom thresholds for camera 12A may be0.5× to 1.3×, and the zoom thresholds for camera 12B may be 1× to 2×. Inthis example, there is an overlap from 1× to 1.3× in the zoom factorranges for cameras 12A and 12B.

The use of digital zoom circuit 40B, processing circuit 42B, and buffer44B when there is overlap in the zoom factor ranges is one example andshould not be considered limiting. Digital zoom circuit 40B, processingcircuit 42B, and buffer 44B may still be utilized even in examples wherethere is not overlap in zoom factor ranges.

In such examples, in response to a zoom in or zoom out, where processingcircuit 42A is processing frames from camera 12A, processing circuit 42Amay keep processing frames from camera 12A until the zoom threshold ofcamera 12A is reached. In parallel, processing circuit 42B may startprocessing frames from camera 12B. For example, switch 36 may beconfigured to route the output from camera 12A to processing circuit 42A(e.g., via digital zoom circuit 40A), and route the output from camera12B to processing circuit 42B (e.g., via digital zoom circuit 40B).Processing circuit 42B may output to buffer 44B.

Camera processor 14 may also include switch 46. Switch 46 may beconfigured to selectively output from buffer 44A or buffer 44B. In someexamples, as the zoom factor for camera 12A pass through 1× towards1.3×, switch 46 may be configured to output from buffer 44A until thezoom factor reaches 1.3×. In parallel, after the zoom factor passes 1×,processing circuit 42B may be configured to output frames to buffer 44B.In this case, from the zoom factor being 1× to 1.3×, the frames inbuffer 44B may be overwritten once buffer 44B is full. However, afterthe zoom factor reaches 1.3×, switch 46 may switch to select the outputfrom buffer 44B.

Having both buffer 44A and buffer 44B may be beneficial to avoid a gapin frames to display when there is a switch from camera 12A to camera12B. For instance, there are already frames in buffer 44B that are readyto be displayed. Otherwise, there is a chance that during the switchover from camera 12A to camera 12B, there is a split second where thereis a blank frame. By prefiling buffer 44B with frames, there may not bea blank frame.

As described above, with video capture in slow motion enabled, cameraprocessor 14 may be configured to receive a first set of frame capturedby first camera 12 at a first rate, and during the zoom in or zoom outto a zoom threshold for the first camera, receive a second set of framescaptured by the first camera 12A at a second rate that this less thanthe first rate. In some examples, in parallel with processing the secondset of frames, camera processor 14 may receive a third set of framescaptured by a second camera 12B of the plurality of cameras 12A-12C. Forinstance, during the time that camera 12A is zooming in from 0.5× to1.3×, camera processor 14 may receive in parallel a third set of framesfrom camera 12B, such as when the zoom factor is between 1× and 1.3×.Camera processor 14 may process the third set of frames.

Switch 46 may be configured to select buffer 44A so as to output, fordisplay, the second set of frames until a second zoom threshold (e.g.,1.3×) for the first camera 12A is reached. Switch 46 may be configuredto then select buffer 44B, so as to output, for display, the third setof frames after the second zoom threshold (e.g., 1.3×) for the firstcamera 12A is reached. In this way, generating the video content forplayback may include generating video content for playback, at the thirdrate, that includes the first set of frames, the second set of framesuntil a second zoom threshold for the first camera is reached, and thethird set of frames after the second zoom threshold for the first camerais reached. In this example, both the first camera 12A and the secondcamera 12B are configured to operate at zoom factors greater than orequal to the first zoom threshold and less than or equal to the secondzoom threshold. For instance, both camera 12A and camera 12B areconfigured to operate at zoom factors greater than or equal to 1× andless than or equal to 1.3×.

FIG. 3 is a conceptual diagram illustrating an example way to enablezoom in or zoom out. In the example illustrated in FIG. 3, display 28may display three icons 48A-48C, each associated with a different zoomthreshold for different one of cameras 12A-12C. For example, icon 48Amay be associated with 0.5× for camera 12A, icon 48B may be associatedwith 1× for camera 12B, and icon 48C may be associated with 2× forcamera 12C. Accordingly, in some examples, camera processor 14 and/orCPU 16 may receive information indicative of a selection to zoom as away of receiving a selection to zoom in or zoom out (e.g., such as wherevideo capture in slow motion is enabled).

However, there may be other ways in which to receive a selection to zoomin or zoom out such as by receiving information indicative of a pinch tozoom motion. In the pinch to zoom motion, the user may place two fingerson display 28 and pinch the two fingers together to zoom out or spreadthe two fingers apart to zoom in.

In both cases (e.g., selection or pinch to zoom), camera processor 14may cause zoom factor of one of cameras 12A-12C from which cameraprocessor 14 is receiving frames to increase or decrease until a zoomthreshold for the one of cameras 12A-12C is reached. During the zoomingin or out to the zoom threshold (e.g., the approximately 0.5 seconds ittakes for the zoom factor to reach the zoom threshold), camera processor14 may receive and process frames at a lower rate than the rate at whichcamera processor 14 may receive and process frames when the user is notzooming in or out.

FIG. 4 is a timing diagram illustrating an example of zooming in orzooming out. In FIG. 4, prior to time T0, camera processor 14 may beconfigured to receive frames from camera 12A at 30 fps because zoom isnot enabled.

At time T0, the user may enable slow motion (e.g., via an input throughdisplay 28). From time T0, camera processor 14 may receive a first setof frames capture by first camera 12A at a first rate. The first ratemay be relatively high, such as 120 fps or greater. Processing circuit42A may be configured to process the first set of frames to generatevideo content for display. Processing circuit 42A may store the firstset of frames in buffer 44A.

At time T1, CPU 16 and/or camera processor 14 may receive a selection tozoom in or zoom out. For example, receiving a selection to zoom in orzoom out may include one of receiving information indicative of a pinchto zoom motion, or receiving information indicative of a selection tozoom (e.g. via selection of one of icons 48A-48C).

From time T1 to T2, the zoom factor for camera 12A may change. Forexample, it may take approximate 0.5 seconds to zoom from 0.5× to 1×.During this 0.5 seconds, camera processor 14 may receive frames capturedby camera 12A. For instance, during the zoom in or zoom out to a zoomthreshold for first camera 12A, camera processor 14 may receive a secondset of frames captured by first camera 12A at a second rate that is lessthan the first rate. Because the second set of frames are captured withcamera parameters 34A that were selected for a zoom factor of 0.5×, animage quality of the second set of frames may be poorer than an imagequality of the first set of frames. As one example, the second rate maybe 30 fps.

Processing circuit 42A may process the second set of frames to generatevideo content for display and store the second set of frames (e.g.,after processing) in buffer 44A. Camera processor 14 may cause buffer44A to output the first set of frames and the second set of frames tosystem memory 30. Display interface 26 may receive from system memory 30the first set of frames and the second set of frames and output, fordisplay on display 28, the first set of frames and the second set offrames at a third rate that is less than the first rate (e.g., 30 fps).

At time T2 the zoom threshold for camera 12A is reached, and cameraprocessor 14 processes frames from second camera 12B. For example,switch 36 switches to route the output from second camera 12B toprocessing circuit 42A (e.g., via digital zoom circuit 40A, if needed).For instance, after the zoom threshold for the first camera 12A isreached, camera processor 14 may be configured to receive a third set offrames captured by a second camera 12B of the plurality of cameras12A-12C at a fourth rate (e.g., 120 fps or greater) that is greater thanthe second rate (e.g., the second rate is 30 fps). Processing circuit42A may process the third set of frames to generate video content fordisplay and store the third set of frames in buffer 44A. Buffer 44A mayoutput the third set of frames to system memory 30. Display interface 26may retrieve the third set of frames and output for display the thirdset of frames at the third rate (e.g., 30 fps).

At time T3, the user may disable video capture with slow motion. In thiscase, camera processor 14 may keep receiving frames from second camera12B. However, the rate at which camera processor 14 receives the framesfrom second camera 12B may be relatively low (e.g., 30 fps) because slowmotion is disabled. Again, in slow motion, frames are captured at a highrate and displayed at a low rate. When slow motion is disabled, the rateat which the frames are captured may be approximately the same as therate at which the frames are displayed.

FIG. 5 is a flowchart illustrating an example method of operation inaccordance with one or more examples described in this disclosure. Theexample of FIG. 5 is described with respect to one or more processors,examples of which include one or more of camera processor 14, CPU 16,and display interface 26, and a first camera, examples of which includeany one of cameras 12A-12C.

One or more processors may receive a first set of frames captured by thefirst camera at a first rate (50). For example, video capture in slowmotion may be enabled. In such cases, the first rate may be relativelyhigh, such as 120 fps or greater.

The one or more processors may process the first set of frames togenerate video for display (52). For instance, processing circuit 42Amay be configured process the first set of frames to generate videocontent and store the resulting first set of frames in buffer 44A.

At some point, the one or more processors may receive a selection tozoom in or zoom out (54). For example, receiving the selection to zoomin or zoom out may include receiving the selection to zoom in or zoomout with video capture in slow motion enabled.

During the zoom in or zoom out to a zoom threshold for the first camera,the one or more processors may receive a second set of frames capturedby the first camera at a second rate that is less than the first rate(56). In some examples, receiving the second set of frames includesreceiving the second set of frames with video capture in slow motionenabled. As described above, it may take a certain amount of time toincrease or decrease the zoom factor for the first camera to reach thezoom threshold for the first camera. During the time that the zoomfactor is increasing or decreasing to the zoom threshold, the framesthat are captured (e.g., the second set of frames) tend to have poorerimage quality because the camera parameters are not accurate for thosezoom factors. In some examples, an image quality of the second set offrames is poorer than an image quality of the first set of frames.

One or more processors may process the second set of frames to generatevideo content for display (58). Processing the second set of frames mayinclude performing digital zoom in or digital zoom out until the zoomthreshold for the first camera is reached. For example, performingdigital zoom in or digital zoom out until the zoom threshold for thefirst camera is reached may include performing cropping and resizingduring an increase or decrease of a zoom factor on the second set offrames.

Buffer 44A may store the first set of frames and the second set offrames. In some examples, the one or more processors may generate videocontent for playback, at a third rate that is less than the first rate,that includes the first set of frames and the second set of frames (60).The one or more processors (e.g., display interface 26) may output, fordisplay on display 28, the generated video content that includes thefirst set of frames and the second set of frames at the third rate thatis less than the first rate.

The first camera is one of a plurality of cameras (e.g., one of cameras12A-12C) coupled to the one or more processors. After the zoom thresholdfor the first camera is reached, the one or more processors may beconfigured to receive a third set of frames captured by a second cameraof the plurality of cameras at a fourth rate that is greater than thesecond rate, process the third set of frames to generate video contentfor display, and output for display the third set of frames at the thirdrate. For example, the one or more processors may generate video contentfor playback, at the third rate, that includes the first set of frames,the second set of frames, and the third set of frames, and then outputfor display the generated video content for playback.

As described above, the plurality of cameras may capture frames based onrespective camera parameters. For example, during or prior to the firstcamera capturing the first set of frames, the one or more processors maybe configured to determine one or more of AF, AWB, and AEC parameters(e.g., camera parameters 34A-34C) for each of the plurality of cameras.In such examples, receiving the third set of frames captured by thesecond camera may include receiving the third set of frames based on oneor more of AF, AWB, and AEC parameters determined for the second cameraduring or prior to the first camera capturing the first set of frames.

In some examples, the zoom threshold is a first zoom threshold. Afterthe first zoom threshold for the first camera is reached, the one ormore processors may be configured to in parallel with processing thesecond set of frames, receive a third set of frames captured by a secondcamera of the plurality of cameras (e.g., switch 36 routes frames fromthe first camera to processing circuit 42A and routes frames from thesecond camera to processing circuit 42B), process the third set offrames (e.g., with processing circuit 42B).

The one or more processors may be configured to generate video contentfor playback, at the third rate, that includes the first set of frames,the second set of frames until a second zoom threshold for the firstcamera is reached, and the third set of frames after the second zoomthreshold for the first camera is reached. For example, the one or moreprocessors may output, for display, the second set of frames until asecond zoom threshold for the first camera is reached, and output, fordisplay, the third set of frames after the second zoom threshold for thefirst camera is reached. In this example, both the first camera and thesecond camera are configured to operate at zoom factors greater than orequal to the first zoom threshold and less than or equal to the secondzoom threshold.

The following describes some example techniques. The example techniquesmay be used separately or together in any practical combination.

Clause 1. A device for generating video content, the device comprising afirst camera and one or more processors coupled to the first camera andconfigured to receive a first set of frames captured by the first cameraat a first rate, process the first set of frames to generate videocontent for display, receive a selection to zoom in or zoom out, duringthe zoom in or zoom out to a zoom threshold for the first camera,receive a second set of frames captured by the first camera at a secondrate that is less than the first rate, process the second set of framesto generate video content for display, and generate video content forplayback, at a third rate that is less than the first rate, thatincludes the first set of frames and the second set of frames.

Clause 2. The device of clause 1, wherein receiving the selection tozoom in or zoom out comprises receiving the selection to zoom in or zoomout with video capture in slow motion enabled, and wherein receiving thesecond set of frames comprises receiving the second set of frames withvideo capture in slow motion enabled.

Clause 3. The device of any of clauses 1 and 2, wherein the first camerais one of a plurality of cameras coupled to the one or more processors,wherein the device comprises a second camera of the plurality ofcameras, wherein, after the zoom threshold for the first camera isreached, the one or more processors are configured to receive a thirdset of frames captured by the second camera of the plurality of camerasat a fourth rate that is greater than the second rate, and process thethird set of frames to generate video content for display, whereingenerating video content for playback comprises generating video contentfor playback, at the third rate, that includes the first set of frames,the second set of frames, and the third set of frames.

Clause 4. The device of clause 3, wherein, during or prior to the firstcamera capturing the first set of frames, the one or more processors areconfigured to determine one or more of automatic focus (AF), auto whitebalance (AWB), and automatic exposure control (AEC) parameters for eachof the plurality of cameras, and wherein receiving the third set offrames captured by the second camera comprises receiving the third setof frames based on one or more of AF and AEC parameters determined forthe second camera during or prior to the first camera capturing thefirst set of frames.

Clause 5. The device of any of clauses 1-4, wherein processing thesecond set of frames comprises performing digital zoom in or digitalzoom out until the zoom threshold for the first camera is reached,wherein performing digital zoom in or digital zoom out until the zoomthreshold for the first camera is reached comprises performing croppingand resizing during an increase or decrease of a zoom factor on thesecond set of frames.

Clause 6. The device of any of clauses 1-5, wherein the zoom thresholdcomprises a first zoom threshold, wherein the first camera is one of aplurality of cameras coupled to the one or more processors, wherein,after the first zoom threshold for the first camera is reached, the oneor more processors are configured to in parallel with processing thesecond set of frames, receive a third set of frames captured by a secondcamera of the plurality of cameras, and process the third set of frames,wherein generating video content for playback comprises generating videocontent for playback, at the third rate, that includes the first set offrames, the second set of frames until a second zoom threshold for thefirst camera is reached, and the third set of frames after the secondzoom threshold for the first camera is reached, and wherein both thefirst camera and the second camera are configured to operate at zoomfactors greater than or equal to the first zoom threshold and less thanor equal to the second zoom threshold.

Clause 7. The device of any of clauses 1-6, wherein the first rate isgreater than or equal to 120 frames per second.

Clause 8. The device of any of clauses 1-7, wherein the third rate isequal to the second rate.

Clause 9. The device of any of clauses 1-8, wherein receiving aselection to zoom in or zoom out comprises one of receiving informationindicative of a pinch to zoom motion or receiving information indicativeof a selection to zoom.

Clause 10. The device of any of clauses 1-9, wherein an image quality ofthe second set of frames is poorer than an image quality of the firstset of frames.

Clause 11. A method for generating video content, the method comprisingreceiving, with one or more processors, a first set of frames capturedby a first camera at a first rate, processing, with the one or moreprocessors, the first set of frames to generate video content fordisplay, receiving, with the one or more processors, a selection to zoomin or zoom out, during the zoom in or zoom out to a zoom threshold forthe first camera, receiving, with the one or more processors, a secondset of frames captured by the first camera at a second rate that is lessthan the first rate, processing, with the one or more processors, thesecond set of frames to generate video content for display, andgenerating, with the one or more processors, video content for playback,at a third rate that is less than the first rate, that includes thefirst set of frames and the second set of frames.

Clause 12. The method of clause 11, wherein receiving the selection tozoom in or zoom out comprises receiving the selection to zoom in or zoomout with video capture in slow motion enabled, and wherein receiving thesecond set of frames comprises receiving the second set of frames withvideo capture in slow motion enabled.

Clause 13. The method of any of clauses 11 and 12, wherein the firstcamera is one of a plurality of cameras coupled to the one or moreprocessors, the method further comprising, after the zoom threshold forthe first camera is reached receiving a third set of frames captured bya second camera of the plurality of cameras at a fourth rate that isgreater than the second rate, and processing the third set of frames togenerate video content for display, wherein generating video content forplayback comprises generating video content for playback, at the thirdrate, that includes the first set of frames, the second set of frames,and the third set of frames.

Clause 14. The method of clause 13, further comprising during or priorto the first camera capturing the first set of frames, determining oneor more of automatic focus (AF), auto white balance (AWB), and automaticexposure control (AEC) parameters for each of the plurality of cameras,and wherein receiving the third set of frames captured by the secondcamera comprises receiving the third set of frames based on one or moreof AF and AEC parameters determined for the second camera during orprior to the first camera capturing the first set of frames.

Clause 15. The method of any of clauses 11-14, wherein processing thesecond set of frames comprises performing digital zoom in or digitalzoom out until the zoom threshold for the first camera is reached,wherein performing digital zoom in or digital zoom out until the zoomthreshold for the first camera is reached comprises performing croppingand resizing during an increase or decrease of a zoom factor on thesecond set of frames.

Clause 16. The method of any of clauses 11-15, wherein the zoomthreshold comprises a first zoom threshold, wherein the first camera isone of a plurality of cameras coupled to the one or more processors, themethod further comprising, after the first zoom threshold for the firstcamera is reached in parallel with processing the second set of frames,receiving a third set of frames captured by a second camera of theplurality of cameras, and processing the third set of frames, whereingenerating video content for playback comprises generating video contentfor playback, at the third rate, that includes the first set of frames,the second set of frames until a second zoom threshold for the firstcamera is reached, and the third set of frames after the second zoomthreshold for the first camera is reached, and wherein both the firstcamera and the second camera are configured to operate at zoom factorsgreater than or equal to the first zoom threshold and less than or equalto the second zoom threshold.

Clause 17. The method of any of clauses 11-16, wherein the first rate isgreater than or equal to 120 frames per second.

Clause 18. The method of any of clauses 11-17, wherein the third rate isequal to the second rate.

Clause 19. The method of any of clauses 11-18, wherein receiving aselection to zoom in or zoom out comprises one of receiving informationindicative of a pinch to zoom motion or receiving information indicativeof a selection to zoom.

Clause 20. The method of any of clauses 11-19, wherein an image qualityof the second set of frames is poorer than an image quality of the firstset of frames.

Clause 21. A computer-readable storage medium storing instructionsthereon that when executed cause one or more processors to receive afirst set of frames captured by a first camera at a first rate, processthe first set of frames to generate video content for display, receive aselection to zoom in or zoom out, during the zoom in or zoom out to azoom threshold for the first camera, receive a second set of framescaptured by the first camera at a second rate that is less than thefirst rate, process the second set of frames to generate video contentfor display, and generate video content for playback, at a third ratethat is less than the first rate, that includes the first set of framesand the second set of frames.

Clause 22. The computer-readable storage medium of clause 21, whereinthe instructions that cause the one or more processors to receive theselection to zoom in or zoom out comprise instructions that cause theone or more processors to receive the selection to zoom in or zoom outwith video capture in slow motion enabled, and wherein the instructionsthat cause the one or more processors to receive the second set offrames comprise instructions that cause the one or more processors toreceive the second set of frames with video capture in slow motionenabled.

Clause 23. The computer-readable storage medium of any of clauses 21 and22, wherein the first camera is one of a plurality of cameras, theinstructions further comprising instructions that cause the one or moreprocessors to, after the zoom threshold for the first camera is reachedreceive a third set of frames captured by a second camera of theplurality of cameras at a fourth rate that is greater than the secondrate, and process the third set of frames to generate video content fordisplay, wherein generating video content for playback comprisesgenerating video content for playback, at the third rate, that includesthe first set of frames, the second set of frames, and the third set offrames.

Clause 24. The computer-readable storage medium of clause 23, furthercomprising instructions that cause the one or more processors to duringor prior to the first camera capturing the first set of frames,determine one or more of automatic focus (AF), auto white balance (AWB),and automatic exposure control (AEC) parameters for each of theplurality of cameras, and wherein receiving the third set of framescaptured by the second camera comprises receiving the third set offrames based on one or more of AF and AEC parameters determined for thesecond camera during or prior to the first camera capturing the firstset of frames.

Clause 25. The computer-readable storage medium of any of clauses 21-24,wherein the zoom threshold comprises a first zoom threshold, wherein thefirst camera is one of a plurality of cameras, the instructions furthercomprising instructions that cause the one or more processors to, afterthe first zoom threshold for the first camera is reached in parallelwith processing the second set of frames, receive a third set of framescaptured by a second camera of the plurality of cameras, process thethird set of frames, wherein generating video content for playbackcomprises generating video content for playback, at the third rate, thatincludes the first set of frames, the second set of frames until asecond zoom threshold for the first camera is reached, and the third setof frames after the second zoom threshold for the first camera isreached, and wherein both the first camera and the second camera areconfigured to operate at zoom factors greater than or equal to the firstzoom threshold and less than or equal to the second zoom threshold.

Clause 26. A device for generating video content, the device comprisingmeans for receiving a first set of frames captured by a first camera ata first rate, means for processing the first set of frames to generatevideo content for display, means for receiving a selection to zoom in orzoom out, means for receiving a second set of frames captured by thefirst camera at a second rate that is less than the first rate duringthe zoom in or zoom out to a zoom threshold for the first camera, meansfor processing the second set of frames to generate video content fordisplay, and means for generating video content for playback, at a thirdrate that is less than the first rate, that includes the first set offrames and the second set of frames.

In one or more examples, the functions described may be implemented inhardware, software, firmware, or any combination thereof. If implementedin software, the functions may be stored on or transmitted over, as oneor more instructions or code, a computer-readable medium and executed bya hardware-based processing unit. Computer-readable media may includecomputer-readable storage media, which corresponds to a tangible mediumsuch as data storage media. In this manner, computer-readable mediagenerally may correspond to tangible computer-readable storage mediawhich is non-transitory. Data storage media may be any available mediathat can be accessed by one or more computers or one or more processorsto retrieve instructions, code and/or data structures for implementationof the techniques described in this disclosure. A computer programproduct may include a computer-readable medium.

By way of example, and not limitation, such computer-readable storagemedia can comprise RAM, ROM, EEPROM, CD-ROM or other optical diskstorage, magnetic disk storage, or other magnetic storage devices, flashmemory, or any other medium that can be used to store desired programcode in the form of instructions or data structures and that can beaccessed by a computer. It should be understood that computer-readablestorage media and data storage media do not include carrier waves,signals, or other transient media, but are instead directed tonon-transient, tangible storage media. Disk and disc, as used herein,includes compact disc (CD), laser disc, optical disc, digital versatiledisc (DVD), floppy disk and Blu-ray disc, where disks usually reproducedata magnetically, while discs reproduce data optically with lasers.Combinations of the above should also be included within the scope ofcomputer-readable media.

Instructions may be executed by one or more processors, such as one ormore digital signal processors (DSPs), general purpose microprocessors,application specific integrated circuits (ASICs), field programmablelogic arrays (FPGAs), or other equivalent integrated or discrete logiccircuitry. Accordingly, the term “processor,” as used herein may referto any of the foregoing structure or any other structure suitable forimplementation of the techniques described herein. In addition, in someaspects, the functionality described herein may be provided withindedicated hardware and/or software modules configured for encoding anddecoding, or incorporated in a combined codec. Also, the techniquescould be fully implemented in one or more circuits or logic elements.

The techniques of this disclosure may be implemented in a wide varietyof devices or apparatuses, including a wireless handset, an integratedcircuit (IC) or a set of ICs (e.g., a chip set). Various components,modules, or units are described in this disclosure to emphasizefunctional aspects of devices configured to perform the disclosedtechniques, but do not necessarily require realization by differenthardware units. Rather, as described above, various units may becombined in a codec hardware unit or provided by a collection ofinteroperative hardware units, including one or more processors asdescribed above, in conjunction with suitable software and/or firmware.

Various examples have been described. These and other examples arewithin the scope of the following claims.

What is claimed is:
 1. A device for generating video content, the devicecomprising: a first camera; and one or more processors coupled to thefirst camera and configured to: receive a first set of frames capturedby the first camera at a first rate; process the first set of frames togenerate video content for display; receive a selection to zoom in orzoom out; during the zoom in or zoom out to a zoom threshold for thefirst camera, receive a second set of frames captured by the firstcamera at a second rate that is less than the first rate; process thesecond set of frames to generate video content for display; and generatevideo content for playback, at a third rate that is less than the firstrate, that includes the first set of frames and the second set offrames.
 2. The device of claim 1, wherein receiving the selection tozoom in or zoom out comprises receiving the selection to zoom in or zoomout with video capture in slow motion enabled, and wherein receiving thesecond set of frames comprises receiving the second set of frames withvideo capture in slow motion enabled.
 3. The device of claim 1, whereinthe first camera is one of a plurality of cameras coupled to the one ormore processors, wherein the device comprises a second camera of theplurality of cameras, wherein, after the zoom threshold for the firstcamera is reached, the one or more processors are configured to: receivea third set of frames captured by the second camera of the plurality ofcameras at a fourth rate that is greater than the second rate; andprocess the third set of frames to generate video content for display,wherein generating video content for playback comprises generating videocontent for playback, at the third rate, that includes the first set offrames, the second set of frames, and the third set of frames.
 4. Thedevice of claim 3, wherein, during or prior to the first cameracapturing the first set of frames, the one or more processors areconfigured to determine one or more of automatic focus (AF), auto whitebalance (AWB), and automatic exposure control (AEC) parameters for eachof the plurality of cameras, and wherein receiving the third set offrames captured by the second camera comprises receiving the third setof frames based on one or more of AF and AEC parameters determined forthe second camera during or prior to the first camera capturing thefirst set of frames.
 5. The device of claim 1, wherein processing thesecond set of frames comprises performing digital zoom in or digitalzoom out until the zoom threshold for the first camera is reached,wherein performing digital zoom in or digital zoom out until the zoomthreshold for the first camera is reached comprises: performing croppingand resizing during an increase or decrease of a zoom factor on thesecond set of frames.
 6. The device of claim 1, wherein the zoomthreshold comprises a first zoom threshold, wherein the first camera isone of a plurality of cameras coupled to the one or more processors,wherein, after the first zoom threshold for the first camera is reached,the one or more processors are configured to: in parallel withprocessing the second set of frames, receive a third set of framescaptured by a second camera of the plurality of cameras; and process thethird set of frames, wherein generating video content for playbackcomprises generating video content for playback, at the third rate, thatincludes the first set of frames, the second set of frames until asecond zoom threshold for the first camera is reached, and the third setof frames after the second zoom threshold for the first camera isreached, and wherein both the first camera and the second camera areconfigured to operate at zoom factors greater than or equal to the firstzoom threshold and less than or equal to the second zoom threshold. 7.The device of claim 1, wherein the first rate is greater than or equalto 120 frames per second.
 8. The device of claim 1, wherein the thirdrate is equal to the second rate.
 9. The device of claim 1, whereinreceiving a selection to zoom in or zoom out comprises one of: receivinginformation indicative of a pinch to zoom motion; or receivinginformation indicative of a selection to zoom.
 10. The device of claim1, wherein an image quality of the second set of frames is poorer thanan image quality of the first set of frames.
 11. A method for generatingvideo content, the method comprising: receiving, with one or moreprocessors, a first set of frames captured by a first camera at a firstrate; processing, with the one or more processors, the first set offrames to generate video content for display; receiving, with the one ormore processors, a selection to zoom in or zoom out; during the zoom inor zoom out to a zoom threshold for the first camera, receiving, withthe one or more processors, a second set of frames captured by the firstcamera at a second rate that is less than the first rate; processing,with the one or more processors, the second set of frames to generatevideo content for display; and generating, with the one or moreprocessors, video content for playback, at a third rate that is lessthan the first rate, that includes the first set of frames and thesecond set of frames.
 12. The method of claim 11, wherein receiving theselection to zoom in or zoom out comprises receiving the selection tozoom in or zoom out with video capture in slow motion enabled, andwherein receiving the second set of frames comprises receiving thesecond set of frames with video capture in slow motion enabled.
 13. Themethod of claim 11, wherein the first camera is one of a plurality ofcameras coupled to the one or more processors, the method furthercomprising, after the zoom threshold for the first camera is reached:receiving a third set of frames captured by a second camera of theplurality of cameras at a fourth rate that is greater than the secondrate; and processing the third set of frames to generate video contentfor display, wherein generating video content for playback comprisesgenerating video content for playback, at the third rate, that includesthe first set of frames, the second set of frames, and the third set offrames.
 14. The method of claim 13, further comprising: during or priorto the first camera capturing the first set of frames, determining oneor more of automatic focus (AF), auto white balance (AWB), and automaticexposure control (AEC) parameters for each of the plurality of cameras,and wherein receiving the third set of frames captured by the secondcamera comprises receiving the third set of frames based on one or moreof AF and AEC parameters determined for the second camera during orprior to the first camera capturing the first set of frames.
 15. Themethod of claim 11, wherein processing the second set of framescomprises performing digital zoom in or digital zoom out until the zoomthreshold for the first camera is reached, wherein performing digitalzoom in or digital zoom out until the zoom threshold for the firstcamera is reached comprises: performing cropping and resizing during anincrease or decrease of a zoom factor on the second set of frames. 16.The method of claim 11, wherein the zoom threshold comprises a firstzoom threshold, wherein the first camera is one of a plurality ofcameras coupled to the one or more processors, the method furthercomprising, after the first zoom threshold for the first camera isreached: in parallel with processing the second set of frames, receivinga third set of frames captured by a second camera of the plurality ofcameras; and processing the third set of frames, wherein generatingvideo content for playback comprises generating video content forplayback, at the third rate, that includes the first set of frames, thesecond set of frames until a second zoom threshold for the first camerais reached, and the third set of frames after the second zoom thresholdfor the first camera is reached, and wherein both the first camera andthe second camera are configured to operate at zoom factors greater thanor equal to the first zoom threshold and less than or equal to thesecond zoom threshold.
 17. The method of claim 11, wherein the firstrate is greater than or equal to 120 frames per second.
 18. The methodof claim 11, wherein the third rate is equal to the second rate.
 19. Themethod of claim 11, wherein receiving a selection to zoom in or zoom outcomprises one of: receiving information indicative of a pinch to zoommotion; or receiving information indicative of a selection to zoom. 20.The method of claim 11, wherein an image quality of the second set offrames is poorer than an image quality of the first set of frames.
 21. Anon-transitory computer-readable storage medium storing instructionsthereon that when executed cause one or more processors to: receive afirst set of frames captured by a first camera at a first rate; processthe first set of frames to generate video content for display; receive aselection to zoom in or zoom out; during the zoom in or zoom out to azoom threshold for the first camera, receive a second set of framescaptured by the first camera at a second rate that is less than thefirst rate; process the second set of frames to generate video contentfor display; and generate video content for playback, at a third ratethat is less than the first rate, that includes the first set of framesand the second set of frames.
 22. The non-transitory computer-readablestorage medium of claim 21, wherein the instructions that cause the oneor more processors to receive the selection to zoom in or zoom outcomprise instructions that cause the one or more processors to receivethe selection to zoom in or zoom out with video capture in slow motionenabled, and wherein the instructions that cause the one or moreprocessors to receive the second set of frames comprise instructionsthat cause the one or more processors to receive the second set offrames with video capture in slow motion enabled.
 23. The non-transitorycomputer-readable storage medium of claim 21, wherein the first camerais one of a plurality of cameras, the instructions further comprisinginstructions that cause the one or more processors to, after the zoomthreshold for the first camera is reached: receive a third set of framescaptured by a second camera of the plurality of cameras at a fourth ratethat is greater than the second rate; and process the third set offrames to generate video content for display, wherein generating videocontent for playback comprises generating video content for playback, atthe third rate, that includes the first set of frames, the second set offrames, and the third set of frames.
 24. The non-transitorycomputer-readable storage medium of claim 23, further comprisinginstructions that cause the one or more processors to: during or priorto the first camera capturing the first set of frames, determine one ormore of automatic focus (AF), auto white balance (AWB), and automaticexposure control (AEC) parameters for each of the plurality of cameras,and wherein receiving the third set of frames captured by the secondcamera comprises receiving the third set of frames based on one or moreof AF and AEC parameters determined for the second camera during orprior to the first camera capturing the first set of frames.
 25. Thenon-transitory computer-readable storage medium of claim 21, wherein thezoom threshold comprises a first zoom threshold, wherein the firstcamera is one of a plurality of cameras, the instructions furthercomprising instructions that cause the one or more processors to, afterthe first zoom threshold for the first camera is reached: in parallelwith processing the second set of frames, receive a third set of framescaptured by a second camera of the plurality of cameras; process thethird set of frames, wherein generating video content for playbackcomprises generating video content for playback, at the third rate, thatincludes the first set of frames, the second set of frames until asecond zoom threshold for the first camera is reached, and the third setof frames after the second zoom threshold for the first camera isreached, and wherein both the first camera and the second camera areconfigured to operate at zoom factors greater than or equal to the firstzoom threshold and less than or equal to the second zoom threshold. 26.A device for generating video content, the device comprising: means forreceiving a first set of frames captured by a first camera at a firstrate; means for processing the first set of frames to generate videocontent for display; means for receiving a selection to zoom in or zoomout; means for receiving a second set of frames captured by the firstcamera at a second rate that is less than the first rate during the zoomin or zoom out to a zoom threshold for the first camera; means forprocessing the second set of frames to generate video content fordisplay; and means for generating video content for playback, at a thirdrate that is less than the first rate, that includes the first set offrames and the second set of frames.